/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.com.s21.poo.controller;

import ar.com.s21.poo.dao.ProductoDAO;
import ar.com.s21.poo.exception.GestionarException;
import ar.com.s21.poo.model.Producto;
import ar.com.s21.poo.model.TipoProducto;
import java.sql.SQLException;
import java.util.List;
import javax.swing.JComboBox;

/**
 *
 * @author Other
 */
public class ProductoControlador {
    
    private ProductoDAO productoDAO;
    
    
    /**
     *
     */
    public ProductoControlador(){
        productoDAO = new ProductoDAO();
    }
    
    

    /**
     *
     * @param codigo
     * @param descripcion
     * @param stockMinimo
     * @param stockActual
     * @param precio
     * @param tProducto
     * @return
     * @throws SQLException
     * @throws GestionarException
     */
    public boolean agregarProducto(String codigo, String descripcion, int stockMinimo,int stockActual, double precio, String tProducto) throws SQLException, GestionarException {
        
        
                TipoProducto tipoProducto = null;
                
                switch(tProducto){
                    case "Jugueteria":  tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(0);
                        break;
                    case "Libreria": tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(1);
                        break;
                    case "Limpieza": tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(2);
                        break;
                    case "Perfumeria": tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(3);
                        break;
                }
                
                
        Producto producto = new Producto(codigo, descripcion, stockMinimo, precio, tipoProducto);
        producto.setVigente(true);
        producto.setStockActual(stockActual);
        
        return productoDAO.add(producto);
      
    }

    /**
     *
     * @param codigoProducto
     * @return
     * @throws SQLException
     */
    public Producto buscarProducto(String codigoProducto) throws SQLException {
        return productoDAO.buscarProducto(codigoProducto);
    }

    /**
     *
     * @param codigo
     * @param descripcion
     * @param stockMinimo
     * @param stockActualizado
     * @param precio
     * @param tProducto
     * @param vigente
     * @throws SQLException
     */
    public void actualizarProducto(String codigo, String descripcion, int stockMinimo, int stockActualizado, double precio, String tProducto, boolean vigente) throws SQLException {
        
        TipoProducto tipoProducto = null;
                
                switch(tProducto){
                    case "Jugueteria":  tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(0);
                        break;
                    case "Libreria": tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(1);
                        break;
                    case "Limpieza": tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(2);
                        break;
                    case "Perfumeria": tipoProducto = new TipoProducto(tProducto);
                                            tipoProducto.setIdTipoProducto(3);
                        break;
                }
                
                
        Producto producto = new Producto(codigo, descripcion, stockMinimo, precio, tipoProducto);
        producto.setVigente(true);
        producto.setStockActual(stockActualizado);

        
        productoDAO.update(producto);
    }
    
    
    
    /**
     *
     * @param comboProducto
     * @throws SQLException
     */
    public void obtenerListaProductos(JComboBox comboProducto) throws SQLException{
        for (ar.com.s21.poo.model.Producto producto : productoDAO.listarProductos()) {
                comboProducto.addItem(producto.getCodigoAndDescripcion());
            
                
            }
    }
    
}
